//SPDX-FileCopyrightText: Copyright 2025-2025 深圳市同心圆网络有限公司
//SPDX-License-Identifier: GPL-3.0-only

package api_common

import (
	"context"

	"gitcode.com/eteam/api-server/dao/fs_dao"
	"gitcode.com/eteam/api-server/dao/user_dao"
	"gitcode.com/eteam/proto-gen-go.git/fs_api"
)

/*
 * 增加用户到系统中，一般是用户注册或后台添加
 * 1. 插入用户对象
 * 2. 设置密码
 * 3. 创建头像文件系统
 */

func CreateUser(ctx context.Context, userInfo *user_dao.UserInfoDbItem, passwd string) error {
	//插入用户对象
	err := user_dao.UserInfoDao.Insert(ctx, userInfo)
	if err != nil {
		return err
	}
	//设置密码
	err = user_dao.UserPasswdDao.Set(ctx, userInfo.UserId, passwd)
	if err != nil {
		return err
	}
	//创建头像文件系统
	err = fs_dao.FsInfoDao.Insert(ctx, &fs_dao.FsInfoDbItem{
		FsId:      userInfo.UserId, //和用户ID相同
		OwnerType: fs_api.FS_OWNER_TYPE_FS_OWNER_TYPE_USER,
		OwnerId:   userInfo.UserId,
		Status: fs_dao.FsStatusDbItem{
			FileCount:     0,
			TotalFileSize: 0,
		},
		MaxFilecount: 0,
		MaxTotalSize: 0,
		LastGcTime:   0,
	})
	if err != nil {
		return err
	}

	return nil
}
